home *** CD-ROM | disk | FTP | other *** search
Wrap
global gWorld, gStates, gOBJECTS, gHotRects, gScreenState, gCursorList, gTimerList, gKeyRef, cNullCast, cNullQTmovie, NULLRECT, gSpritePropTypes, gQTproplist, cNUllCharmovie, sPICTSPRITE, sQTSPRITE, sCURSORSPRITE, sCPSprite, sQTCharSprite, gUnvObjects, gAngles, gLastCursor, gPlayingQT, gScreenWidth, gScreenHeight, gCurKeyList, gTransMovieName, gAnimationObjects, gDeathRow, gLastKeyList, gKeyFrameSound, gEnvironmentSound, gGlobal, gKeyFrameSoundMode, gHaveNavs, gNextEnvLetter, gNextDIRFile, void, gMIDIPlayTRUE, gInitalized, xNAVXOBJ, xCURXOBJ, gCPU, gfileSep, gRootPath, gHDpath, gXobjs, gXOBJPath, gCDpath, gCDName, gTempHotRects, gdirtyGame, gScrollTextlist, gQTcharState, gQTmovPath on ReleaseUNVobject ObjRef set obj to getaProp(gOBJECTS, ObjRef) if getaProp(obj, #Aquired) = #false then makeDynamic(ObjRef, #Aquired, #true) ADDObjects([ObjRef]) end if end on DoTubeObj end on DosyrnObj set Mobj to getaProp(gOBJECTS, #DefibScreen) if (getaProp(gCurKeyList, #RefName) = #H12) and (getaProp(Mobj, #State) = #Heart) then set obj to getaProp(gOBJECTS, #Plunger) setaProp(obj, #loc, point(525, 70)) set the locH of sprite getaProp(obj, #spriteNum) to 525 set hotrectnum to integer(getaProp(obj, #spriteNum) & "01") setaProp(getaProp(gHotRects, hotrectnum), #rect, rect(505, 35, 546, 106)) setaProp(obj, #HotRect, [rect(505, 35, 546, 106)]) set obj to getaProp(gOBJECTS, #syringe) setaProp(obj, #loc, point(396, 70)) set the locH of sprite getaProp(obj, #spriteNum) to 396 set hotrectnum to integer(getaProp(obj, #spriteNum) & "01") setaProp(getaProp(gHotRects, hotrectnum), #rect, rect(280, 37, 512, 103)) setaProp(obj, #HotRect, [rect(280, 37, 512, 103)]) set obj to getaProp(gOBJECTS, #syrnObj) set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc) set hotrectnum to integer(getaProp(obj, #spriteNum) & "01") setaProp(getaProp(gHotRects, hotrectnum), #rect, getAt(getaProp(obj, #HotRect), 1)) setaProp(getaProp(gOBJECTS, #syrnObj), #Aquired, #USED) Delobjects([#syrnObj]) cursorandupdate() end if end on DoLeaf1Obj if getaProp(gCurKeyList, #RefName) = #G20 then set ObjRef to #JenkinsLeafSporeParent set sporesOnPlate to getaProp(getaProp(gOBJECTS, #GrowSporesLab), #sporesOnPlate) if getPos(sporesOnPlate, #spore6) = 0 then releaseSpores(ObjRef) end if end if end on DoLeaf2Obj if getaProp(gCurKeyList, #RefName) = #G20 then set ObjRef to #TropicalLeafSporeParent set sporesOnPlate to getaProp(getaProp(gOBJECTS, #GrowSporesLab), #sporesOnPlate) if getPos(sporesOnPlate, #spore5) = 0 then releaseSpores(ObjRef) end if end if end on DoBagObj if (char 1 of string(getaProp(gCurKeyList, #RefName)) = "F") and (getaProp(gCurKeyList, #RefName) <> #F69) and (count(getaProp(getaProp(gOBJECTS, #ScanPapers), #paperLocRects)) = 16) then if the shiftDown and (gGlobal = 1) and (count(getaProp(getaProp(gOBJECTS, #ScanPapers), #Children)) < 16) then pickUpPapers() end if set Papers to getaProp(getaProp(gOBJECTS, #ScanPapers), #Children) repeat with Page in Papers set p to getaProp(gOBJECTS, Page) set sNum to getaProp(p, #spriteNum) set the castNum of sprite sNum to getaProp(getaProp(p, #cast), #init) set the ink of sprite sNum to 0 set the loc of sprite sNum to getaProp(p, #Loc2) end repeat playSound("E04FXPL1.AIF", #keyframeCast) repeat while the stillDown cursorandupdate() end repeat repeat with Page in Papers set p to getaProp(gOBJECTS, Page) set sNum to getaProp(p, #spriteNum) set the castNum of sprite sNum to cNullCast set the ink of sprite sNum to 0 set the loc of sprite sNum to point(-2000, -2000) end repeat else if getaProp(gCurKeyList, #RefName) = #F69 then releasePapers() end if end if end on DoSeedObj if (getaProp(gCurKeyList, #RefName) = #B16B) and (getaProp(getaProp(gStates, #Conditions), #Weather) = #HOT) then makeDynamic(#SeedObj, #Aquired, #USED) Delobjects([#SeedObj]) genExitKF(#B16C) end if end on DoMapObj if (char 1 of string(gKeyRef) = "F") and (getOne(getaProp(getaProp(gOBJECTS, #MapObj), #noMapList), gKeyRef) = 0) then set obj to getaProp(gOBJECTS, #MapObj) if getaProp(obj, #State) = #NoMap then ADDObjects(getaProp(getaProp(obj, #SpecialChild), #map)) makeDynamic(#MapObj, #State, #map) else if getaProp(obj, #State) = #map then Delobjects(getaProp(getaProp(obj, #SpecialChild), #map)) makeDynamic(#MapObj, #State, #NoMap) end if end if end if end on DoCDObjDown end on DoCDObj end on CDAction ObjRef set rangerBethDanceFlag to 0 set obj to getaProp(gOBJECTS, ObjRef) playCD() if getaProp(gCurKeyList, #RefName) = #F04 then set timescDPlayed to getaProp(getaProp(gOBJECTS, #RangerBeth), #timescDPlayed) makeDynamic(#RangerBeth, #timescDPlayed, timescDPlayed + 1) set rangerBethDanceFlag to 1 set DanceDelayCounter to 0 end if set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #down), 1) updateStage() set C to count(getaProp(getaProp(obj, #cast), #down)) set THIS to 1 repeat while the mouseDown if rangerBethDanceFlag then set DanceDelayCounter to DanceDelayCounter + 1 if DanceDelayCounter > 20 then doRangerBethVid(#cdplay) set rangerBethDanceFlag to 0 end if end if if inside(point(the mouseH, the mouseV), getAt(getaProp(obj, #HotRect), 1)) then set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #down), THIS) else set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #UP), 1) end if cursorandupdate() set THIS to THIS + 1 if THIS > C then set THIS to 1 end if end repeat set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #UP), 1) updateStage() do(getaProp(getaProp(obj, #action), #UP)) end on DoUnvOpen OpenUNVDialog() end on DoUnvSaveAs SaveUNVDialog() end on DoUnvSave if getaProp(gStates, #gCurrentGameName) <> #virgin then SaveGameData() else SaveUNVDialog() end if end on DoUnvNew newGame() end on DoUnvQuit if gdirtyGame = 0 then halt() else OpenQuitDialog() end if end on PDAJumptoMap if the shiftDown and (gGlobal = 1) then set Childlist to [#PDAJUMPG, #PDAJUMPF, #PDAJUMPH, #PDAJUMPD, #PDAJUMPC] else set aList to [#PDAJUMPC: #C01, #PDAJUMPD: #D01, #PDAJUMPF: #F01, #PDAJUMPG: #G06, #PDAJUMPH: #H01] set Childlist to [] repeat with X = 1 to 5 set Here to getAt(aList, X) if not voidp(getaProp(getaProp(gStates, #BeenThere), Here)) and (char 1 of string(Here) <> getaProp(gStates, #EnviroLetter)) then add(Childlist, getPropAt(aList, X)) end if end repeat end if sort(Childlist) setaProp(getaProp(gOBJECTS, #PDAMapOBJ), #Children, Childlist) PDANodeJump(#PDAMapOBJ) end on PDAnotes num set obj to getaProp(gOBJECTS, #PDANotesfield) set Page to getaProp(obj, #PageNum) + num if Page > getaProp(obj, #Total) then set Page to 0 end if if Page < 0 then set Page to 0 end if set aTime to Page * 60 set the movieTime of sprite getaProp(obj, #spriteNum) to aTime makeDynamic(#PDANotesfield, #PageNum, Page) setaProp(getaProp(obj, #QTProp), #movieTime, aTime) end on SetCreditsPDAFields set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinCredfield), #cast), #text) to string(getaProp(gStates, #Credits)) set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinAverfield), #cast), #text) to string(((getaProp(gStates, #Credits) + 0) / 2) - 20) set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinCharfield), #cast), #text) to "17" set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinPINfield), #cast), #text) to "4669" end on PDAMode Mode set the castNum of sprite getaProp(getaProp(gOBJECTS, #PDAMode), #spriteNum) to getaProp(getaProp(getaProp(gOBJECTS, #PDAMode), #cast), Mode) playSound("PDAclick.aif", #keyframeCast, #NOW) if Mode = #Fin then if getProp(getaProp(gOBJECTS, #PDAFinanceOBJ), #Login) = #true then SetCreditsPDAFields() PDANodeJump(#PDAFinanceOBJ) else PDANodeJump(#PDAFinInitOBJ) end if else if Mode = #Mes then PDALoadSeries(#PDAMessageObj) else if Mode = #Dol then PDANodeJump(#PDADownLoadObj) end if end if end if end on PDALoadSeries type if voidp(type) then set type to #PDASeriesOBJ else end if set obj to getaProp(gOBJECTS, type) if count(getaProp(obj, #DataBase)) > 0 then set the movieRate of sprite sQTCharSprite to 0 set the loc of sprite sQTCharSprite to point(-2000, -2000) updateStage() PDANodeJump(type) InitPDAmesList(type) else set the movieRate of sprite sQTCharSprite to 0 set the loc of sprite sQTCharSprite to point(-2000, -2000) updateStage() setaProp(getaProp(gOBJECTS, #PDAVid), #DisplayState, #UN) PDANodeJump(type) InitNoMessage(type) end if end on PDARelease What set PDA to getaProp(gOBJECTS, #PDAObj) set DnOBJ to getaProp(gOBJECTS, #PDADownLoadObj) if (getaProp(PDA, #Aquired) = #true) and symbolp(What) then makeDynamic(#PDAObj, #cast, getaProp(PDA, #phoneCast)) set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(PDA, #cast), #UP) playSound("PDARelease.aif", #keyframeCast) if What = #DOCSeries then if getaProp(DnOBJ, #State) = #NONE then makeDynamic(#PDADownLoadObj, #State, #SeriesONLY) makeDynamic(#PDADownloads, #DisplayState, 1) else if getaProp(DnOBJ, #State) = #ProsOnly then makeDynamic(#PDADownLoadObj, #State, #BOTH) setaProp(getaProp(gStates, #Conditions), #Trailer, #true) makeDynamic(#PDADownloads, #DisplayState, 3) end if end if else if What = #ProsProSeries then if getaProp(DnOBJ, #State) = #NONE then makeDynamic(#PDADownLoadObj, #State, #ProsOnly) makeDynamic(#PDADownloads, #DisplayState, 2) else if getaProp(DnOBJ, #State) = #SeriesONLY then makeDynamic(#PDADownLoadObj, #State, #BOTH) setaProp(getaProp(gStates, #Conditions), #Trailer, #true) makeDynamic(#PDADownloads, #DisplayState, 3) end if end if end if end if else if stringp(What) then if char 4 of What = "m" then MessageReleasePDA(What) else SeriesReleasePDA(What) end if end if end if end on VideoErrorCheck videos, What if getOne(videos, What) = 0 then put "Error PDARelease video named incorrect" && What return #false else return #true end if end on MessageReleasePDA What set obj to getaProp(gOBJECTS, #PDAMessageObj) set PDA to getaProp(gOBJECTS, #PDAObj) set videos to getaProp(getaProp(getaProp(gOBJECTS, #PDAVid), #cast), #MESS) set Check to VideoErrorCheck(videos, What) if Check = #true then set Dbase to getaProp(obj, #DataBase) set Have to #false repeat with Data in Dbase if getaProp(Data, #VID) = What then set Have to #true exit repeat end if end repeat if Have = #false then set MesNum to integer(char 5 to 6 of What) set CharLetter to value("#" & char 7 of What) set aText to getaProp(getaProp(obj, #text), CharLetter) set vidList to [#text: aText, #VID: What, #play: #false] set ref to count(Dbase) + 1 setaProp(Dbase, ref, vidList) makeDynamic(#PDAMessageObj, #VidNum, ref) if getaProp(PDA, #Aquired) = #true then TimePDArelease() end if end if end if end on SeriesReleasePDA What set obj to getaProp(gOBJECTS, #PDASeriesOBJ) set PDA to getaProp(gOBJECTS, #PDAObj) set videos to getaProp(getaProp(getaProp(gOBJECTS, #PDAVid), #cast), #Series) set Check to VideoErrorCheck(videos, What) if Check = #true then set Dbase to getaProp(obj, #DataBase) set Have to #false repeat with Data in Dbase if getaProp(Data, #VID) = What then set Have to #true exit repeat end if end repeat if Have = #false then set MesNum to value("#" & char 4 to 6 of What) set aText to getaProp(getaProp(obj, #text), MesNum) set vidList to [#text: aText, #VID: What, #play: #false] set ref to count(Dbase) + 1 setaProp(Dbase, ref, vidList) makeDynamic(#PDASeriesOBJ, #VidNum, ref) if getaProp(PDA, #Aquired) = #true then TimePDArelease() end if end if end if end on TimePDArelease set PDA to getaProp(gOBJECTS, #PDAObj) makeDynamic(#PDAObj, #cast, getaProp(PDA, #phoneCast)) set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(PDA, #cast), #UP) playSound("PDARelease.aif", #keyframeCast) end on InitNoMessage ObjRef set obj to getaProp(gOBJECTS, ObjRef) set TextHolderfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #Holder) set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text) set DataBase to getaProp(obj, #DataBase) set the text of cast TextHolderfield to EMPTY set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text) set the foreColor of cast TextDisplayfield to 97 set the text of cast TextDisplayfield to "NO VIDEO MESSAGES" end on InitPDAmesList ObjRef set obj to getaProp(gOBJECTS, ObjRef) set TextHolderfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #Holder) set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text) set DataBase to getaProp(obj, #DataBase) set the text of cast TextHolderfield to EMPTY set sum to count(DataBase) repeat with t = 1 to sum set tnum to sum - (t - 1) put getaProp(getaProp(DataBase, t), #text) into line tnum of field TextHolderfield end repeat put "-------------" into line sum + 1 of field TextHolderfield put "-------------" into line sum + 2 of field TextHolderfield set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text) setaProp(obj, #Numlines, sum) setaProp(obj, #Curline, 1) setaProp(obj, #TextHolder, TextHolderfield) setaProp(obj, #TextDisplay, TextDisplayfield) set CurSelect to getaProp(obj, #VidNum) DisplayTextPDAScroll(1, TextDisplayfield, TextHolderfield, DataBase, CurSelect) DisplayPDAVid(ObjRef) end on setPlayPDAVidnum ObjRef set obj to getaProp(gOBJECTS, ObjRef) set Textfield to getaProp(obj, #TextDisplay) set C to getaProp(obj, #Numlines) set lineNum to the mouseLine if count(getaProp(obj, #DataBase)) <> 0 then if (lineNum > 0) and (lineNum <= 19) then set scrolloffset to getaProp(obj, #Curline) - 1 set vidnumReal to C + 1 - (lineNum + scrolloffset) if not voidp(getaProp(obj, #VidNum)) then set lastvid to getaProp(obj, #VidNum) + 1 - C - scrolloffset set the foreColor of line lastvid of cast Textfield to 97 end if set the foreColor of line lineNum of cast Textfield to 145 makeDynamic(ObjRef, #VidNum, vidnumReal) DisplayPDAVid(ObjRef) end if end if end on PDAMessScroll num set obj to getaProp(gOBJECTS, #PDAMessageObj) if count(getaProp(obj, #DataBase)) <> 0 then set Curline to getaProp(obj, #Curline) + num if Curline < 1 then set Curline to 1 else if (Curline + 18) > getaProp(obj, #Numlines) then set Curline to getaProp(obj, #Curline) end if end if setaProp(obj, #Curline, Curline) set TextDisplayfield to getaProp(obj, #TextDisplay) set Textdatafield to getaProp(obj, #TextHolder) set DataBase to getaProp(obj, #DataBase) set CurSelect to getaProp(obj, #VidNum) DisplayTextPDAScroll(Curline, TextDisplayfield, Textdatafield, DataBase, CurSelect) end if end on DisplayTextPDAScroll Startline, TextDisplayfield, Textdatafield, DataBase, CurSelect set the foreColor of cast TextDisplayfield to 97 set C to count(DataBase) set CurSelect to C - (CurSelect - 1) if C > 19 then set CurSelect to CurSelect - (Startline - 1) set endline to Startline + 18 set the text of cast TextDisplayfield to line Startline to endline of the text of cast Textdatafield if (CurSelect < 20) and (CurSelect > 0) then set the foreColor of line CurSelect of cast TextDisplayfield to 145 end if else set Startline to 1 set endline to C set the text of cast TextDisplayfield to line Startline to endline of the text of cast Textdatafield put " " after field TextDisplayfield set the foreColor of line CurSelect of cast TextDisplayfield to 145 end if end on DisplayPDAVid ObjRef set obj to getaProp(gOBJECTS, ObjRef) set Vobj to getaProp(gOBJECTS, #PDAVid) set Textfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text) if count(getaProp(obj, #DataBase)) <> 0 then set VidPath to gCDName & "DATA" & gfileSep & "J_enviro" & gfileSep set Base to getaProp(getaProp(obj, #DataBase), getaProp(obj, #VidNum)) set VidName to getaProp(Base, #VID) setaProp(getaProp(Vobj, #cast), getaProp(Vobj, #DisplayState), VidName) if the timer < 0 then set the fileName of cast cNUllCharmovie to string(VidPath & getaProp(Base, #VID)) end if CallTheTimer() set the loc of sprite sQTCharSprite to point(408, 170) updateStage() set the movieTime of sprite sQTCharSprite to 0 set the movieRate of sprite sQTCharSprite to 0 stopSound(#ALL) updateStage() set the movieRate of sprite sQTCharSprite to 1 setaProp(Base, #play, #true) else set the movieRate of sprite sQTCharSprite to 0 end if end on DoPDARew if the loc of sprite sQTCharSprite = point(408, 170) then set the movieRate of sprite sQTCharSprite to -3 updateStage() set aTime to the ticks + 100 repeat while aTime > the ticks cursorandupdate() end repeat set the movieRate of sprite sQTCharSprite to 0 set the movieTime of sprite sQTCharSprite to 0 updateStage() end if end on DoPDAPlay if the loc of sprite sQTCharSprite = point(408, 170) then if the movieRate of sprite sQTCharSprite = 0 then stopSound(#ALL) set the movieRate of sprite sQTCharSprite to 1 else set the movieRate of sprite sQTCharSprite to 0 end if end if end on OpenPDA SuppendCurrentKF() setaProp(gQTcharState, #CharMovPath, gQTmovPath) set gQTmovPath to gCDName & "DATA" & gfileSep & "J_enviro" & gfileSep set obj to getaProp(gOBJECTS, #ThePDA) set the castNum of sprite getaProp(obj, #spriteNum) to getaProp(getaProp(obj, #cast), #BG) set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc) updateStage() PaletteSwitch("PDA Palette") updateStage() setaProp(getaProp(gOBJECTS, #PDAMode), #State, #NONE) makeDynamic(#PDAObj, #cast, getaProp(getaProp(gOBJECTS, #PDAObj), #normalCast)) ADDObjects([#ThePDA]) end on ClosePDA set obj to getaProp(gOBJECTS, #ThePDA) if not voidp(getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)) then Delobjects([getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)]) deleteProp(getaProp(gOBJECTS, #ThePDA), #CurNode) end if Delobjects([#ThePDA]) set the castNum of sprite getaProp(obj, #spriteNum) to getaProp(getaProp(obj, #cast), #BG) set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc) updateStage() PaletteSwitch("Palette" && getaProp(gStates, #EnviroLetter)) set the castNum of sprite getaProp(obj, #spriteNum) to cNullCast set the loc of sprite getaProp(obj, #spriteNum) to point(-2000, -2000) stopSound(#ALL) updateStage() set gQTmovPath to getaProp(gQTcharState, #CharMovPath) ReinstateCurrentKF() end on CleanUpPDAJump set obj to getaProp(gOBJECTS, #ThePDA) if not voidp(getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)) then Delobjects([getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)]) deleteProp(getaProp(gOBJECTS, #ThePDA), #CurNode) end if Delobjects([#ThePDA]) set PDA to getaProp(gOBJECTS, #PDAObj) set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(obj, #cast), #BG) set the loc of sprite getaProp(PDA, #spriteNum) to getaProp(obj, #loc) updateStage() ReinstateCurrentKF(#true) end on PaletteSwitch palette puppetPalette(palette, 120) if gCPU = #MAC then gFixPalette(mPatchIt) end if updateStage() end on PDANodeJump nodeRef set PDA to getaProp(gOBJECTS, #ThePDA) if not voidp(getaProp(PDA, #CurNode)) then Delobjects([getaProp(PDA, #CurNode)]) end if set obj to getaProp(gOBJECTS, #MapObj) if getaProp(obj, #State) = #map then Delobjects(getaProp(getaProp(obj, #SpecialChild), #map)) makeDynamic(#MapObj, #State, #NoMap) end if set the castNum of sprite getaProp(getaProp(gOBJECTS, #PDABG), #spriteNum) to getaProp(getaProp(getaProp(gOBJECTS, #PDABG), #cast), nodeRef) ADDObjects([nodeRef]) setaProp(PDA, #CurNode, nodeRef) end on PDAThumb set the loc of sprite sCURSORSPRITE to point(-2000, -2000) makeDynamic(#PDAFinanceOBJ, #Login, #true) SetCreditsPDAFields() PDANodeJump(#PDAFinanceOBJ) end